package org.jeecg.modules.ws.util;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Data;

@Data
@JacksonXmlRootElement(localName = "TX")
public class WyzlAccountDetailResponse {
    
    @JacksonXmlProperty(localName = "REQUEST_SN")
    private String requestSn;
    
    @JacksonXmlProperty(localName = "CUST_ID")
    private String custId;
    
    @JacksonXmlProperty(localName = "TX_CODE")
    private String txCode;
    
    @JacksonXmlProperty(localName = "RETURN_CODE")
    private String returnCode;
    
    @JacksonXmlProperty(localName = "RETURN_MSG")
    private String returnMsg;
    
    @JacksonXmlProperty(localName = "LANGUAGES")
    private String language;
    
    @JacksonXmlProperty(localName = "TX_INFO")
    private TxInfo txInfo;
    
    @Data
    public static class TxInfo {
        @JacksonXmlProperty(localName = "ACCNO1")
        private String accNo1;
        
        @JacksonXmlProperty(localName = "CURR_COD")
        private String currCod;
        
        @JacksonXmlProperty(localName = "ACC_NAME")
        private String accName;
        
        @JacksonXmlProperty(localName = "ACC_ORGAN")
        private String accOrgan;
        
        @JacksonXmlProperty(localName = "ACC_STATE")
        private String accState;
        
        @JacksonXmlProperty(localName = "INTR")
        private String intr;
        
        @JacksonXmlProperty(localName = "TOTAL_PAGE")
        private String totalPage;
        
        @JacksonXmlProperty(localName = "PAGE")
        private String page;
        
        @JacksonXmlProperty(localName = "POSTSTR")
        private String postStr;
        
        @JacksonXmlProperty(localName = "FLAG")
        private String flag;
        
        @JacksonXmlProperty(localName = "FILE_LOCSTR")
        private String fileLocStr;
        
        @JacksonXmlProperty(localName = "DETAILLIST")
        private DetailList detailList;
    }
    
    @Data
    public static class DetailList {
        @JacksonXmlElementWrapper(useWrapping = false)
        @JacksonXmlProperty(localName = "DETAILINFO")
        private DetailInfo[] detailInfo;
    }
    
    @Data
    public static class DetailInfo {
        @JacksonXmlProperty(localName = "TRANDATE")
        private String tranDate;
        
        @JacksonXmlProperty(localName = "TRANTIME")
        private String tranTime;
        
        @JacksonXmlProperty(localName = "CRE_TYP")
        private String creTyp;
        
        @JacksonXmlProperty(localName = "CRE_NO")
        private String creNo;
        
        @JacksonXmlProperty(localName = "MESSAGE")
        private String message;
        
        @JacksonXmlProperty(localName = "AMT")
        private String amt;
        
        @JacksonXmlProperty(localName = "AMT1")
        private String amt1;
        
        @JacksonXmlProperty(localName = "FLAG1")
        private String flag1;
        
        @JacksonXmlProperty(localName = "ACCNO2")
        private String accNo2;
        
        @JacksonXmlProperty(localName = "ACC_NAME1")
        private String accName1;
        
        @JacksonXmlProperty(localName = "FLAG2")
        private String flag2;
        
        @JacksonXmlProperty(localName = "TRAN_FLOW")
        private String tranFlow;
        
        @JacksonXmlProperty(localName = "BFLOW")
        private String bFlow;
        
        @JacksonXmlProperty(localName = "DET_NO")
        private String detNo;
        
        @JacksonXmlProperty(localName = "DET")
        private String det;
        
        @JacksonXmlProperty(localName = "REAL_TRANDATE")
        private String realTranDate;
        
        @JacksonXmlProperty(localName = "RLTV_ACCNO")
        private String rltvAccNo;
        
        @JacksonXmlProperty(localName = "CADBank_Nm")
        private String cadBankNm;
        
        @JacksonXmlProperty(localName = "Ovrlsttn_Trck_No")
        private String ovrlsttnTrckNo;
        
        @JacksonXmlProperty(localName = "ExoStm_Py_Rmrk")
        private String exoStmPyRmrk;
    }
} 